import { localCache } from '@/utils/cache'
import { createRouter, createWebHashHistory } from 'vue-router'
import { LOGIN_TOKEN } from '@/global/constants'
import { firstMenu } from '@/utils/map-menus'

const router = createRouter({
  history: createWebHashHistory(),
  routes: [
    { path: '/', redirect: '/main' },
    { path: '/login', component: () => import('@/views/login/login.vue') },
    { path: '/main', name: 'main', component: () => import('@/views/main/main.vue') },
    // 404页面路由，放到最后
    { path: '/:pathMatch(.*)', component: () => import('@/views/lose/lose.vue') }
  ]
})

/** 路由导航守卫
 * 参数：to（跳转到的位置）/from（从哪里跳转过来）
 * 返回值：返回值决定导航的路径（不返回或者返回undefined，默认跳转）
 */
router.beforeEach((to) => {
  // 如果没有登录成功，跳转到login页面；成功则允许跳转到main页面
  const token = localCache.getCache(LOGIN_TOKEN)
  if (to.path.startsWith('/main') && !token) return '/login'
  // 不同的用户进入到main页面，都进入到动态路由中的第一条路由
  if(to.path === '/main') {
    return firstMenu?.url
  }
})
export default router
